昨天解決連線問題後又出現新狀況,資料庫好像又卡關了⋯⋯(白眼)
我暫時只能看看書面資料,腦補一下怎麼用、用在哪,等到我把資料庫的問題搞定了我再來實作看看。如果下一篇前能搞定,再來寫個資料庫問題解決方案吧,如果。(合掌
先說說昨天就該講到的 Migration。
有時候我們建完資料庫、建完資料表,然後發現「哎呀我還需要XXXX」,你只好再增加點東西,但是當你要刪除他們的時候,「咦咦咦原本長怎樣?我要刪什麼?」就有點尷尬了。
Migration像資料庫的版本控制,我們可以透過Migration來建立資料表,如果你有對這張資料表進行更動,Migration可以提供rollback的功能。
php artisan make:migration create_users_table
這個指令會在 database/migrations
目錄下生成Migration文件,檔名包含時間戳記,像這樣:2018_10_25_082836_create_users_table.php
。
Migration的使用跟資料庫有關連,如果想知道你的資料庫有沒有連上,試著用Migration生成一個資料表看看就知道了(望天
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
//
}
public function down()
{
//
}
}
在Migration的檔案中一定會有up
和down
兩個方法的實作,up
用於新增資料表、欄位、索引;down
被用於回朔。
我自己是把up
理解為GitHub裡面的綠色+,down
則是紅色的-。
簡介一下相關Artisan指令:
php artisan migrate
:執行所有migrationmigrate:fresh
:會移除所有資料表,然後除新執行php artisan migrate
migrate:install
:建立一個migration檔案的資料表migrate:refresh
:還原上一個migration,並執行每個可用的migrationmigrate:reset
:回復此版本migrate:rollback
:回復上個版本migrate:status
:顯示各個migration表格,會註記是否被執行過